草庐IT

c++ - 从 C++ 类制作 Visual C++ DLL

全部标签

c# - 在 C# 中制作一个不可聚焦的表单

我想编写一个虚拟键盘,例如用于触摸屏pc的Windows屏幕键盘。但是我的虚拟键盘从正在使用的应用程序中窃取焦点时遇到问题。即使用户单击它,Windows屏幕键盘也会将焦点保持在当前应用程序上。有没有办法在C#中对Windows窗体执行相同的操作?我现在唯一能做的就是将键盘事件发送到特定的应用程序,例如以下代码中的记事本。如果我可以使窗体不可聚焦,我可以使用GetForegroundWindow获取当前聚焦的窗口。[DllImport("USER32.DLL",CharSet=CharSet.Unicode)]publicstaticexternIntPtrFindWindow(str

c# - 如何在 winforms 桌面应用程序中制作自动完成文本框

我有一个单词列表。该列表包含大约100-200个文本字符串(实际上是地铁站的名称)。我想制作一个自动完成的文本框。例如,用户按“N”字母,然后出现一个(结束)适当的选项(只有一个选项)。必须选择结尾。怎么做?PS1:我想,有一个文本框控件具有如下属性:ListAppropriateOptions{/*...*/}PS2:对不起我的英语。如果您不明白->问我,我会尽力解释! 最佳答案 以防@leniel的链接失效,这里有一些代码可以解决这个问题:AutoCompleteStringCollectionallowedTypes=newA

c# - 在 VBScript 中使用 DLL

我已经将C#代码编译成一个DLL,但对它们没有什么经验。我的C#代码包含一个带有静态方法Print()的类HelloWorld。我想在VBScript中使用这个DLL来调用方法Print()。我知道这是基础,但我将其用作对最终将编译为DLL的更大规模项目的测试。声明看起来像什么,方法调用看起来如何? 最佳答案 重要:只有当DLL公开COM接口(interface)时,这两种方法才有效。如果您的dll已在系统中注册,请使用CreateObject及其ProgID。SetmyObject=CreateObject("MyReallyCo

c# - 在 Mono 中使用预编译的 .NET 程序集 DLL?

我们目前正在测试Mono,看看我们的.NETDLL是否适用于Linux上的客户。我们的DLL为Windows窗体提供组件。我将DLL放在Debug目录中,添加了引用,并创建了一个从Windows窗体派生的类。该类独立运行良好,但在我添加DLL引用并创建我们的组件之一(智能感知工作正常)后,它编译但不会运行:**(/home/aldwin/testMonoWF/testMonoWF/bin/Debug/testMonoWF.exe:26905):WARNING**:Couldnotloadfileorassembly'OUR.ASSEMBLY,Version=1.0.0.1,Cultur

c# - 在构建服务器上注册 COM 引用的 DLL

我们正在开发引用一些COM库(例如AutoIT)的C#应用程序。我在第3方“Libs”文件夹中包含了源代码管理下的所有引用组件。问题是COMdll在.csproj文件中没有HintPath属性,我认为这些必须使用regsvr32(或使用某种脚本)手动注册。我目前正在研究创建一个将在每次构建之前运行的MSBuild脚本,但是我不知道我是应该手动调用regsvr32.exe还是使用一些预定义的MSBuild任务?目前,这是我尝试进行的测试:这会产生错误,指出我放置在给定文件夹中的DLL不是有效的DLL。这个问题有什么好的解决方案?编辑:引用COMdll的项目在.csproj文件中有类似的内

c# - 在 C# 中确定引用的 dll 文件版本

我有一个C#解决方案,它引用了我从另一个C#解决方案创建的dll。使用Application.ProductVersion可以很容易地确定我的解决方案的产品版本。但是,我真正需要的是一种在我的程序中分别确定exe和dll文件版本的方法。我想在我的关于对话框中显示dll和exe的文件版本。执行此操作的代码是什么样的? 最佳答案 最简单的方法是,如果您知道引用程序集中的类型:AssemblyNamename=typeof(MyCompany.MyLibrary.SomeType).Assembly.GetName();Assembly.

c# - 什么时候使用 C# 类库 (.dll) 合适?

我是一名从未真正使用过.dll文件的程序员。当然,当我需要第3方软件时,例如图形库、帮助我创建图形的库等。我会将引用/ddl文件添加到我的程序中并在我的代码中使用它们。此外,您似乎可以将.dll用于很多不同的事情,所以我希望这个主题集中在C#上。现在我正在开发一个清理库(?)(我认为这是正确的术语),它将充满相关的方法,可以以各种不同的方式清理变量。我想知道的是:有什么好处:1)将方法写入类库->编译/构建它->添加库作为对程序的引用-这需要清理一些变量?或者如果我在哪里,它会完全一样吗:2)在程序中新建一个SanitizeClass->添加所有sanitize方法->在程序中需要清理

c# - 如何使用 PowerShell 使用 C# DLL 中存在的类的新对象

我有一个C#类,例如publicclassMyComputer:PSObject{publicstringUserName{get{returnuserName;}set{userName=value;}}privatestringuserName;publicstringDeviceName{get{returndeviceName;}set{deviceName=value;}}publicstringdeviceName;}派生自PSObject。我正在使用导入模块在powershell中加载具有此代码的DLL。然后我尝试在PowerShell中创建MyComputer类的新对象

c# - 中止对非托管 DLL 的调用

我有一个非托管DLL,如果输入参数是一个大值,它可以运行很长时间的函数,有时这是可取的,但并非总是如此。我如何在C#中调用此函数以便在需要时可以中止它?到目前为止,我已经尝试将调用放在一个单独的线程中,但中断和中止似乎都无法停止该进程,该进程以100%CPU运行,直到dll完成。是否可以终止正在运行的dll代码? 最佳答案 非托管代码只有在处于“可警告等待状态”时才可中止。当它消耗100%的CPU周期时不会。P/InvokingTerminateThread会起作用,前提是您可以获得线程句柄,而这在.NET中变得非常困难。无论如何它

c# - 在我的 C# 应用程序中制作 "ping"

我需要我的应用程序对稍后指定的地址执行ping操作,只需将平均Ping时间复制到标签的.Text即可。有什么帮助吗?编辑:如果有人感兴趣,我找到了解决方案:PingpingClass=newPing();PingReplypingReply=pingClass.Send("logon.chronic-domination.com");label4.Text=(pingReply.RoundtripTime.ToString()+"ms"); 最佳答案 看看NetworkInformation.Ping类。一个例子:用法:PingTi